/*
 * @Version: 1.0
 * @Author: ZPK
 * @Date: 2022-11-23 21:01:35
 * @LastEditors: ZPK
 * @LastEditTime: 2022-11-23 21:13:57
 */
// unknown 和any 都是顶级类型   unknown是any的安全类型
// any随意 不进行类型检测了
// unknown还是要检测的  相对于any来说  在没有确定类型之前是不能操作的。不能当做函数 类  对象

let c:unknown = 1

function isFunction(val:unknown):val is ()=>void{
    return typeof val === 'function'
}
if(isFunction(c)){
    c()
}

// unknown的特点--------------这个还不是很理解
type unionUnkown = unknown | null | undefined | string //unknown
type interUnkown = unknown & string //string   
// 经常我们写一些泛型要求泛型的类型是字符串 ( K & string)

type isNever =  keyof unknown //索引查询

type Compute<T> ={
    [X in keyof T]: T[X]
}
type X = Compute<unknown>


export{}